﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// Reviewed

#pragma once
#include "IExtend.h"
#include "GcmpApiDeclaration.h"

namespace gcmp
{
    /// \brief 几何对象延伸操作类，用于实现几何对象的延伸
    ///
    class GCMP_GEOMETRY_INTERFACE_EXPORT AlgorithmExtend
    {
    public:
        
        /// \brief  延伸曲面(传入指针类型为普通指针）
        /// \param pSurface                  待延伸的曲面
        /// \param surfaceExtendOption        延伸方式
        /// \param parameterLength            延伸距离
        /// \return 成功返回true，失败返回false
        static bool Extend(ISurface* pSurface, SurfaceExtendOption surfaceExtendOption, double parameterLength);
        
        /// \brief  延伸曲线(传入指针类型为普通指针）
        /// \param pICurve         待延伸曲线
        /// \param bExtendCurveEnd  延伸方式，是否沿曲线尾端延伸
        /// \param length           待延伸的曲线长度
        /// \return bool 延伸是否成功
        static bool Extend(ICurve* pICurve, bool bExtendCurveEnd, double length);

    };
}
